# 导入 cv2 与 pyplot 模块(比如: import cv2 as cv, import matplotlib.pyplot as plt), 
# 用 cv2 模块的 imread 函数, 比如 cv.imread(), 读入一张图片, 如果高大于宽度, 把它的高
# 缩放至 600, 按相同比例缩放它的宽; 否则把它的宽缩放至 600, 按相同比例缩放它的高, 
# 并用 imshow 显示该图片. 把缩放后图像某个颜色通道的每行的像素值相加得到一个矢量
# 如 sum(img_new[:,:,1], 2), 再用 plt.plot()显示该矢量 (10 分)

import cv2 as cv
import matplotlib.pyplot as plt

# 读取图片
img = cv.imread("C:\\Users\\67080\Downloads\IMG_20241024_193151.jpg")  # 请替换为你的图片文件路径

# 检查图像是否成功加载
if img is None:
    print("无法加载图像，请检查文件路径。")
else:
    # 获取图像的高度和宽度
    height, width, _ = img.shape

    # 根据高宽比调整图像大小
    if height > width:
        new_height = 600
        scale = new_height / height
        new_width = int(width * scale)
    else:
        new_width = 600
        scale = new_width / width
        new_height = int(height * scale)

    # 调整图像大小
    img_new = cv.resize(img, (new_width, new_height))

    # 显示缩放后的图像
    cv.imshow('Resized Image', img_new)
    cv.waitKey(0)
    cv.destroyAllWindows()

    # 计算某个颜色通道（例如绿色通道）的每行像素值的和
    green_sum = img_new[:, :, 1].sum(axis=1)

    # 绘制矢量
    plt.plot(green_sum)
    plt.title('Sum of Green Channel Pixel Values')
    plt.xlabel('Row Index')
    plt.ylabel('Sum of Pixel Values')
    plt.show()